[EDIFIKANA] Add Properties row + fix OrgDetail mock fidelity - #558
Open
CRamsan wants to merge 4 commits into
Open
[EDIFIKANA] Add Properties row + fix OrgDetail mock fidelity#558CRamsan wants to merge 4 commits into
CRamsan wants to merge 4 commits into
Conversation
Computes the per-org property count via PropertyManager.getPropertyList() filtered to orgId, matching the pattern already used in MyOrganizationsViewModel, and renders it in OrgDetailScreen's InfoCard between Members and Joined to match the mockup.
…hy (#542) OrgDetailScreen's cards, "Active" status, and typography had drifted from organization-detail.html: bare Card() with no shape/border/elevation, a plain-text "Active" label instead of a badge, headlineSmall/bodyMedium defaults instead of the mock's declared sizes/weights, and a bare Transfer Ownership row with no leading icon. - Apply Shapes.pill/outlineVariant border/Elevation.resting to all three cards, matching the pattern already established in MyOrganizationsScreen.OrgCard, plus an explicit surfaceContainerLowest container color so cards render white instead of tonal-elevation gray. - Add StatusColors (success/warning container + on-container, light+dark) to ui-components/theme — no equivalent semantic color existed anywhere in the Kotlin theme for the mock's green/amber badge tokens. - Render "Active" as a real pill Surface instead of plain colored text. - Match org-name and info-row value typography to the mock's declared sizes/weights (20sp/600, 16sp/500) via local style overrides. - Add IconBadge (wrench, warning colors) as the Transfer Ownership row's leading element, matching the mock's list-item icon.
review-ui flagged three P1s on the OrgDetailScreen mock-fidelity fix: a hardcoded fontSize/fontWeight literal for the org name, a hardcoded RoundedCornerShape(percent = 50) badge shape literal, and a duplicated badge composable (structurally identical to MyOrganizationsScreen's "Current" badge). - Add Shapes.badgePill and Typography.cardTitle tokens to ui-components/theme, following the existing Shapes/Elevation/Spacing token-object convention. - Extract StatusPillBadge (ui-components/components) and use it from both OrgDetailScreen's "Active" badge and MyOrganizationsScreen's "Current" badge, removing the duplication instead of just fixing it in one place.
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
OrgDetailScreen's info card (Your Role / Members / Properties / Joined), computed viaPropertyManager.getPropertyList()filtered to the org — matching the pattern already established inMyOrganizationsViewModel. ([FEATURE] Organization Detail #542)OrgDetailScreen's mock fidelity: cards now use the establishedShapes.pill/border/elevation pattern with an explicit white container color (was falling back to Material3's tonal-elevation gray), the "Active" state renders as a real pill badge instead of plain text, typography matches the mock's declared sizes/weights, and the Transfer Ownership row gained its missing leading icon.StatusColors(success/warning container colors, light+dark) andStatusPillBadgeas new shared design tokens/composable inui-components— no success/warning color existed anywhere in the Kotlin theme before this.MyOrganizationsScreen's "Current" badge onto the new sharedStatusPillBadge, removing a near-duplicate composable found during review.Demo
edifikana/front-end/app/screenshots/OrgDetailScreenPreviewKt.../OrgDetailScreenPreview_Phone.pngedifikana/front-end/app/screenshots/OrgDetailScreenPreviewKt.../OrgDetailScreenPreview_Desktop.pngedifikana/front-end/app/screenshots/OrgDetailScreenPreviewKt.../OrgDetailScreenPreview_Tablet.pngedifikana/front-end/app/screenshots/OrgDetailScreenPreviewKt.../OrgDetailScreenSoleOwnerPreview.pngedifikana/front-end/app/screenshots/MyOrganizationsScreenPreviewKt.../MyOrganizationsScreenPreview_Phone.pngedifikana/front-end/app/screenshots/MyOrganizationsScreenPreviewKt.../MyOrganizationsScreenPreview_Desktop.pngedifikana/front-end/app/screenshots/MyOrganizationsScreenPreviewKt.../MyOrganizationsScreenPreview_Tablet.pngReferences
Test plan
./gradlew :edifikana:front-end:app:release --quietpasses (compiler, ktlint, detekt, unit tests)./gradlew :edifikana:front-end:ui-components:release --quietpasses./gradlew :edifikana:front-end:app:jvmTest --tests "com.cramsan.edifikana.client.lib.features.settings.organizations.orgdetail.OrgDetailViewModelTest"— all 10 tests pass, including the two new cases (property count with cross-org filtering, and fetch-failure defaulting to 0)edifikana/mockups/organization-detail.html— white, bordered, shadowed pill-cornered cardsStatusPillBadge